/*
Esta funcion lo que hace es enviar mediante Ajax, por el metodo post, los datos (user y pass) a un archivo "login.php" para ser comparados en la base de datos. De ser correctos se dar� mensaje de bienvenida, sino, entonces marcara error de usuario o password incorrectos
*/
function POST_AJAX(url, variables){
    objeto = false;
    //creamos el onjeto XMLHttpRequest para poder enviar datos mediante ajax
    if(window.XMLHttpRequest) { // Mozilla, Safari,...
        objeto = new XMLHttpRequest();
        if(objeto.overrideMimeType){
            objeto.overrideMimeType('text/xml');
        }
    } 
    else if(window.ActiveXObject){ // IE
        try{
            objeto = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch(e){
            try {
                objeto = new ActiveXObject("Microsoft.XMLHTTP");
            } 
            catch (e) {}
        }   
    }
    if (!objeto) {
        alert("No se puede crear la instancia XMLHTTP");
        return false;
    }     
    objeto.onreadystatechange = avisos;    /*Cuando el archivo que se mando llamar mediante ajax (login.php) regrese un resultado, entonces lo primero que se hace es mandar llamar la funcion avios(), que es donde se imprimir� mensaje de bienvenida*/
    objeto.open("POST", url, true);  /* enviaremos los datos por el metodo POST hacia login.php */
    objeto.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); /*asignamos header. Esto no tiene relacion con el sistema de logeo. Solo es necesario para poder enviar los datos mediante ajax*/
    objeto.setRequestHeader("Content-length", variables.length);
    objeto.setRequestHeader("Connection", "close");
    objeto.send(variables); /* enviamos las variables con un formato como este: "user=minombre&pass=123456&n=0" */
}
          
/* Esta funcion lo unico que hace, es acomodar los datos introducidos en el formulario a una cadena "variables" con este formato: "user=minombre&pass=123456&n=0" o este "n=0"
   NOTA:
   n=1 significa que el formulario esta siendo enviado por el usuario (es decir que en este punto, el ususario previamente tuvo que haber introducido su user y pass y despues presionado el boton "enviar").
   n=0 significa que el formulario se esta enviando automaticamente cuando se carga la pagina. Esto lo hace para verificar si ya se habia logeado un usuario, entonces en cuanto se cargue la pagina, ya no le pedira su user y pass... ahora solo imprimir� mensaje de bienvenida. Es decir que si se logea, cierra el navegador sin haber cerrado sesion y en 3 dias por ejemplo vuelve a entrar a la pagina, lo que se le imprimir� ser� un mensaje de bienvenida, ya que no cerro sesion la ultima vez que salio. Esto solo dura una semana, es decir que las COOKIES de user y pass expiraran una semana despues de haber sido creadas.
*/
        
function enviar(id_form,n) { 
    if (n=='1'){ //si el formulario fue enviado al darle en el boton
        document.getElementById('inp_enviar').innerHTML = '<span class="niftyquick" style="display: block;"><span class="yoo-login"><span class="login-button" id="inp_enviar"><button  value="Login" name="Submit" type="submit" title="Login">Login</button></span></span></span><img src="ajax.gif"/>';
        if (vacio(document.getElementById(id_form).user.value)==false || vacio(document.getElementById(id_form).pass.value)==false){/*si alguno de los campos de user y pass estan vacios, entonces se imprime mensaje de error. NOTA: vacio() es una funcion que verifica que alla algo diferente a "" o puros espacios en blanco. Esta funcion esta mas abajo*/
            document.getElementById('r').innerHTML = '<span class="greeting">Llena correctamente los campos</span>'; //"r" es un span que tenemos debajo del formulario para imprimir los mensajes de error.
            document.getElementById('inp_enviar').innerHTML = '<span class="niftyquick" style="display: block;"><span class="yoo-login"><span class="login-button" id="inp_enviar"><button  value="Login" name="Submit" type="submit" title="Login">Login</button></span></span></span>';
        }
        else{//s� SI habia llenado correctamente el user y pass, entonces se crear una cadena "variables" con los datos de user y pass con el siguiente formato: "user=minombre&pass=123456&n=0"
            var Formulario = document.getElementById(id_form);
            var longitudFormulario = Formulario.elements.length;
            var variables = "";
            var sepCampos = "";
            for (var i=0; i<=Formulario.elements.length-1; i++){
                variables += sepCampos+Formulario.elements[i].name + '=' + encodeURI(Formulario.elements[i].value);
                sepCampos="&";
            }
            //indice para saber si envio formulario
            variables += '&n=' + n;
            POST_AJAX('login.php', variables); //se envia el nombre del archivo donde se verificaran los datos en la BD y la cadena que se acaba de crear con los datos de user y pass, hacia la funcion POST_AJAX, que lo que hace es enviar los datos por medio de AJAX utilizando el metodo POST hacia "login.php"
        }
    }
    else{ //si el formulario fue enviado automaticamente solo para procesos
        variables = 'n=' + n;
        POST_AJAX('login.php', variables);
    }
}

function avisos() {
    if ((objeto.readyState==4) && (objeto.status==200)){
        document.getElementById('form').innerHTML = objeto.responseText;  //se inserta en el DIV "form" el mensaje de bienvenida que nos imprimio "login.php"
    }//end if
}

enviar('login','0'); //se envia a la funcion "enviar()" el id del formulario y el valor 0 (cero); Este valor (0) nos indicar� que el formulario esta siendo enviado cuando la pagina se esta cargando apenas. NO lo esta enviando el usuario

/*Esta funcion recorre una cadena en busca de algo diferente de espacios en blanco. Si la cadena contenia puros espacios en blanco entonces regresara False*/
function vacio(q) {
    for ( i = 0; i <q.length; i++ ) {
        if ( q.charAt(i) != " " ) { return true }
    }
    return false
}
